package com.eorchis.module.util;

import com.eorchis.utils.utils.PropertyUtil;

public class StringUtil {

	// 比较字符串是否相等
	public static boolean compareString(String str1, String str2) {
		if (!PropertyUtil.objectNotEmpty(str1) && !PropertyUtil.objectNotEmpty(str2))
			return true;
		else if (!PropertyUtil.objectNotEmpty(str1) && PropertyUtil.objectNotEmpty(str2))
			return false;
		else if (PropertyUtil.objectNotEmpty(str1) && !PropertyUtil.objectNotEmpty(str2))
			return false;
		else {
			return str1.equals(str2);
		}
	}

	// 比较数字是否相等
	public static boolean compareInt(Integer str1, Integer str2) {
		if (!PropertyUtil.objectNotEmpty(str1) && !PropertyUtil.objectNotEmpty(str2))
			return true;
		else if (!PropertyUtil.objectNotEmpty(str1) && PropertyUtil.objectNotEmpty(str2))
			return false;
		else if (PropertyUtil.objectNotEmpty(str1) && !PropertyUtil.objectNotEmpty(str2))
			return false;
		else {
			return str1.equals(str2);
		}
	}

	// 求int位数
	public static void main(String[] args) {
		System.out.println(StringUtil.stringSize(7878));
	}

	final static int[] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, Integer.MAX_VALUE };

	// 求值位数
	public static int stringSize(Object x) {
		// if (PropertyUtil.objectNotEmpty(x)) {
		// if (x instanceof String) {
		// return ((String) x).length();
		// } else if (x instanceof Integer) {
		// for (int i = 0;; i++) {
		// if (Integer.valueOf(x + "") <= sizeTable[i])
		// return i + 1;
		// }
		// } else if (x instanceof Double) {
		// for (int i = 0;; i++) {
		// if (Double.valueOf(x + "") <= sizeTable[i]) {
		// return i + 1;
		// }
		// }
		// }
		// }
		// return 0;
		if (PropertyUtil.objectNotEmpty(x)) {
			return x.toString().length();
		}
		return 0;
	}

	/**
	 * 补齐指定位数的数字
	 * 
	 * @param 目标数字
	 * @param 补齐的位数
	 * */
	public static String CompleteNum(Integer num, Integer bit) {
		int i = (num + "").length();
		String bitString = "";
		if (i >= bit) {
			return num + "";
		} else {
			int bitNum = bit - i;
			for (int o = 0; o < bitNum; o++) {
				bitString += "0";
			}
			return bitString + num;
		}
	}

	public static Integer nullToNumber(Integer o) {
		if (!PropertyUtil.objectNotEmpty(o)) {
			return 0;
		} else {
			return o;
		}
	}
}